package com.pureut.production.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pureut.production.domain.DegreasDocument;
import com.pureut.production.domain.dto.BomDetailDto;
import com.pureut.production.domain.dto.DegreasDocumentDto;
import com.pureut.production.domain.dto.PdaDto;
import com.pureut.production.domain.dto.SpunlaceAndDegreasDto;
import com.pureut.production.domain.vo.*;

import java.util.List;

/**
 * 脱脂制令单service
 */
public interface DegreasDocumentService extends IService<DegreasDocument> {

    /**
     * 脱脂制令单列表
     */
    List<DegreasDocumentDto> getList(DegreasDocumentVo degreasDocumentVo);

    /**
     * 脱脂制令单新增
     */
    boolean addDegreas(DegreasDocumentVo degreasDocumentVo) throws Exception;

    /**
     * 脱脂制令单修改
     */
    boolean updateDegreas(DegreasDocumentVo degreasDocumentVo);

    /**
     * 上线
     */
    boolean onLine(Long id);

    /**
     * 停产
     */
    boolean stop(Long id);

    /**
     * 关结
     */
    boolean close(CloseVo closeVo);

    /**
     * 删除
     */
    boolean deleteDegreasDocument(Long id);

    /**
     * 查看
     */
    DegreasDocumentDto queryDegreasDocument(Long id);

    /**
     * 查询bom返回仓库数据及所需用量
     */
    List<BomDetailDto> queryBom(String materialCode, double planWeight, Long bomId, Long lineId);

    /**
     * 新增时获取预计完工时间和预计工时
     */
    DegreasDocumentDto getTimeAndWorkHours(GetTimeAndWorkHoursVo getTimeAndWorkHoursVo);

    /**
     * 根据关联单号查询脱脂制令单信息
     *
     * @param feedOrderNumber
     * @return
     */
    DegreasDocument selectDegreasDocumentInfo(String feedOrderNumber);

    /**
     * 获取生产中脱脂制令单列表(巡检单据查询调用)
     */
    List<DegreasDocumentDto> getOutDegresDocument(DegreasDocumentVo degreasDocumentVo);

    /**
     * 脱脂pda产出列表
     */
    List<PdaDto> pdaList(PdaVo pdaVo);

    /**
     * 水刺及脱脂制令单合并列表
     */
    List<SpunlaceAndDegreasDto> getSpunlaceAndDegreasList(SpunlaceAndDegreasVo spunlaceAndDegreasVo);
}
